/**
 * @file MessageRRQ.h
 * @author Karol Kulesza
 *  
 *  Klasa odpowiadająca za obsługę żądania czytania RRQ otrzymanego od klienta.     
 */

#ifndef MESSAGERRQ_H_
#define MESSAGERRQ_H_

#include "MessageExecutor.h"
#include "../ClientController.h"

namespace tftp_server
{

/**
 * @class MessageRRQ
 * Klasa odpowiadająca za obsługę żądania czytania RRQ otrzymanego od klienta.  
 */
class MessageRRQ: public tftp_server::MessageExecutor
{
	/**
	 * Clientcontroller obsługujący wysyłanie pliku.
	 */
	ClientController *clientController;
	/**
	 * Otrzymany pakiet opakowujący żądanie czytania RRQ.
	 */
	Package package;
	
public:
	/**
	 * Konstruktor klasy.
	 * @param clientController_ - Clientcontroller obsługujący wysyłanie pliku. 
	 * @param package_ - otrzymany pakiet.
	 */
	MessageRRQ(ClientController *clientController_, Package package_);
	
	/**
	 * Destruktor klasy
	 */
	~MessageRRQ();
	
	/**
	 * Metoda obsługująca otrzymane żądanie czytania.
	 */
	void execute() const;
};

}

#endif /* MESSAGERRQ_H_ */